home *** CD-ROM | disk | FTP | other *** search
/ Network Support Library / RoseWare - Network Support Library.iso / apidev / ipx751.arc / IPX_TEST.PAS < prev    next >
Pascal/Delphi Source File  |  1988-08-25  |  5KB  |  215 lines

  1. Program Test_IPX;
  2.  
  3. Uses Crt, DirVideo, DateModl, IPXUnit;
  4.  
  5. Const
  6.    TestSocket1 = $9990;
  7.    TestSocket2 = $9991;
  8.  
  9.    Dt : Array[1..5] of Word = (18,27,36,45,54);  {Timer values}
  10.  
  11. Var
  12.    ECB1, ECB2 : ECBRec;
  13.    AES1       : AESRec;
  14.  
  15.    AES_OK : Boolean;
  16.  
  17.    ScreenTime: TimeRec;
  18.    Sc,Sr     : Word;
  19.  
  20. {$I HEX_WORK.INC}
  21.  
  22. Procedure FlushKeyboard;
  23. Var Ch1: Char;
  24. Begin
  25.    If KeyPressed then
  26.       Begin
  27.          Repeat
  28.             Ch1 := ReadKey;
  29.             Until not KeyPressed;
  30.       End;
  31. End;
  32.  
  33. Function SpaceFill (N,L: Word): String;
  34. Var Ws: String[12];
  35. Begin
  36.    Str(N,Ws);
  37.    SpaceFill := Ws;
  38.    If Length(Ws)=0 then Exit;
  39.    While Length(Ws)<L do Ws := ' '+Ws;
  40.    SpaceFill := Ws;
  41. End;
  42.  
  43. Procedure UpdateTime;
  44. Var Ts: Time_String;
  45. Begin
  46.    Inc(Sc);
  47.    SystemTime;
  48.    If ScreenTime.Second=CurrTime.Second then Exit;
  49.    Sr := Sc;
  50.    Sc := 0;
  51.    Disp_Str(61,2,SpaceFill(Sr,5),VaHigh);
  52.    ScreenTime := CurrTime;
  53.    Ts := TimeString(CurrTime);
  54.    Delete(Ts,1,2);
  55.    Disp_Str(61,1,' '+Ts+' ',VaRev);
  56. End;
  57.  
  58. Function HexNodeAddr (NodeAddr: IPXNodeAddr): String;
  59. Var M : Integer;
  60.     Ws: String[12];
  61. Begin
  62.    M := 1;
  63.    Ws := '';
  64.    Repeat
  65.       Ws := Ws + HexB(NodeAddr[M]);
  66.       Inc(M);
  67.       Until M=7;
  68.    HexNodeAddr := Ws;
  69. End;
  70.  
  71. Procedure Test_Get_Target;
  72. Var TargetNode : IPXAddress;
  73.     LocalTarget: IPXNodeAddr;
  74. Begin
  75.    WriteLn;
  76.    WriteLn('Test_Get_Target');
  77.    WriteLn('Seeking Target Node 0003:0000C0202A00:4003');
  78.    FillChar(TargetNode,SizeOf(TargetNode),0);
  79.    With TargetNode do
  80.       Begin
  81.          Network[4] := 3;
  82.          Node[3]    := $C0;
  83.          Node[4]    := $20;
  84.          Node[5]    := $2A;
  85.          Node[6]    := $00;
  86.          Socket     := $4003;
  87.       End;
  88.    IPXGetTarget(TargetNode,LocalTarget);
  89.    If IPXResultCode=0 then
  90.       Begin
  91.          WriteLn('   Result : Successful');
  92.          WriteLn('   Local Target : ',HexNodeAddr(LocalTarget));
  93.          WriteLn('   Estimated Transport : ',IPXTransTime,' clock ticks');
  94.       End
  95.      Else WriteLn('IPX Error : ',HexB(IPXResultCode));
  96. End;
  97.  
  98. Procedure SoundBell (Tn: Integer);
  99. Begin
  100.    Sound((800+(Tn*40)));
  101.    Delay(50);
  102.    NoSound;
  103. End;
  104.  
  105. Procedure Event_1;  {Routine for Timer 1}
  106. Begin
  107.    UpdateTime;
  108.    Disp_Str(11,6,'EVENT 1',VaHigh);
  109.    SoundBell(1);
  110.    Disp_Str(11,6,'       ',VaHigh);
  111.    AESStartEvent(1,Dt[1]);
  112.    If IPXResultCode<>0 then
  113.       WriteLn('AES Timer 1 Error : ',HexB(IPXResultCode));
  114. End;
  115.  
  116. Procedure Event_2;  {Routine for Timer 2}
  117. Begin
  118.    Disp_Str(21,6,'EVENT 2',VaHigh);
  119.    SoundBell(2);
  120.    Disp_Str(21,6,'       ',VaHigh);
  121.    AESStartEvent(2,Dt[2]);
  122.    If IPXResultCode<>0 then
  123.       WriteLn('AES Timer 2 Error : ',HexB(IPXResultCode));
  124. End;
  125.  
  126. Procedure Event_3;  {Routine for Timer 3}
  127. Begin
  128.    Disp_Str(31,6,'EVENT 3',VaHigh);
  129.    SoundBell(3);
  130.    Disp_Str(31,6,'       ',VaHigh);
  131.    AESStartEvent(3,Dt[3]);
  132.    If IPXResultCode<>0 then
  133.       WriteLn('AES Timer 3 Error : ',HexB(IPXResultCode));
  134. End;
  135.  
  136. Procedure Event_4;  {Routine for Timer 4}
  137. Begin
  138.    Disp_Str(41,6,'EVENT 4',VaHigh);
  139.    SoundBell(4);
  140.    Disp_Str(41,6,'       ',VaHigh);
  141.    AESStartEvent(4,Dt[4]);
  142.    If IPXResultCode<>0 then
  143.       WriteLn('AES Timer 4 Error : ',HexB(IPXResultCode));
  144. End;
  145.  
  146. Procedure Event_5;  {Routine for Timer 5}
  147. Begin
  148.    Disp_Str(51,6,'EVENT 5',VaHigh);
  149.    SoundBell(5);
  150.    Disp_Str(51,6,'       ',VaHigh);
  151.    AESStartEvent(5,Dt[5]);
  152.    If IPXResultCode<>0 then
  153.       WriteLn('AES Timer 5 Error : ',HexB(IPXResultCode));
  154. End;
  155.  
  156. Procedure Start_All_Timers;
  157. Var M: Integer;
  158. Begin
  159.    For M := 1 to 5 do
  160.       Begin
  161.          AESStartEvent(M,Dt[M]);
  162.          If IPXResultCode<>0 then
  163.             WriteLn('AES Timer ',M,' Error : ',HexB(IPXResultCode));
  164.       End;
  165. End;
  166.  
  167. Procedure Check_All_Timers;
  168. Var M: Integer;
  169. Begin
  170.    For M := 1 to 5 do
  171.       Begin
  172.          If AESEventTrip(M) then
  173.             Begin
  174.                Case M of
  175.                   1: Event_1;
  176.                   2: Event_2;
  177.                   3: Event_3;
  178.                   4: Event_4;
  179.                   5: Event_5;
  180.                   End;
  181.             End;
  182.       End;
  183. End;
  184.  
  185. Procedure Cancel_All_Timers;
  186. Var M: Integer;
  187. Begin
  188.    For M := 1 to 5 do
  189.       Begin
  190.          AESAbortEvent(M);
  191.          If IPXResultCode=0 then WriteLn('AES Timer ',M,' Cancelled.')
  192.             Else WriteLn('AES_Abort_Event Error : Timer ',M,' ',HexB(IPXResultCode));
  193.       End;
  194. End;
  195.  
  196. Begin
  197.    ClrScr;
  198.    WriteLn('IPX Interface Testing Program');
  199.    WriteLn;
  200.    Sc := 0;
  201.    Sr := 0;
  202.  
  203.    Repeat
  204.       Start_All_Timers;
  205.       Repeat
  206.          Inc(Sc);
  207.          Check_All_Timers;
  208.          { Do main processing here }
  209.          Until KeyPressed;
  210.       Until KeyPressed;
  211.    Cancel_All_Timers;
  212.    FlushKeyboard;
  213.  
  214. End.
  215.